// pages/show/show.js

const db = wx.cloud.database()
const app = getApp()

Page({

  /**
   * 页面的初始数据
   */
  data: {
    list:[],
    page:1,
    flag:true
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // this.get_use()
  },

  // 获取该账号的生成次数
  get_use(){
    db.collection('user').where({
      _openid:app.globalData.openid
    }).get().then(res => {
      app.globalData.use = res.data[0].use
    })
  },

  // 获取外链数据
  get_data(){
    wx.showNavigationBarLoading()
    db.collection('links').where({
      _openid:app.globalData.openid
    }).orderBy('time','desc').skip((this.data.page-1)*10)
    .limit(10).get().then(res => {
      wx.hideNavigationBarLoading()
      wx.stopPullDownRefresh()
      let arr = this.data.list.concat(res.data)
      this.setData({
        list:arr,
        flag:res.data.length == 0?false:true
      })
    })
  },

  // 添加外链
  add_link(){
    if(app.globalData.openid == ''){
      wx.showModal({
        title:'提示',
        content:'当前暂未登录，暂不能使用功能，请点击确定授权登录',
        success:function(res){
          if(res.confirm){
            wx.navigateTo({
              url: '../login/login',
            })
          }
        }
      })
      return;
    }
    wx.navigateTo({
      url: '../form/form',
    })
  },

  // 生成外链
  create_link(item,index){
    let that = this
    wx.cloud.callFunction({
      name:'create',
      data:{
        item:item
      },
      success:function(res){
        let list = that.data.list
        list[index].link = res
        that.setData({
          list
        })
        console.log(res)
        // 生成成功后更新数据库user消耗次数
        wx.showModal({
          title:'提示',
          content:res,
          success:function(r){
            if(r.confirm){
              // 复制
              that.copy(res)
            }
          }
        })
      }
    })
  },

  // 复制外链
  copy(content){
    wx.setClipboardData({
      data: content,
      success:function(){
        wx.showToast({
          title: '复制成功',
        })
      }
    })
  },

  // 底部展示
  show(e){
    let that = this
    let item = e.currentTarget.dataset.item
    let index = e.currentTarget.dataset.index
    wx.showActionSheet({
      itemList: ['生成外链', '查看外链配置', '删除外链'],
      success (res) {
        let tap = res.tapIndex
        if(tap == 0){
          
          if(item.link == ''){
            console.log('生成外链')
            that.create_link(item)
          }else{
            wx.showModal({
              title:'生成成功',
              content:item.link,
              success:function(){
                that.copy(item.link)
              }
            })
          }
        }else if(tap == 1){
          console.log('查看配置')
          wx.navigateTo({
            url: '../set/set?obj='+JSON.stringify(item),
          })
        }else if(tap == 2){
          wx.showModal({
            title:'提示',
            content:'是否删除该外链？',
            success:function(m){
              if(m.confirm){
                that.remove_link(item._id,index)
              }
            }
          })
        }
      },
      fail (res) {
        console.log(res.errMsg)
      }
    })
  },

  // 删除数据库links
  remove_link(id,index){
    wx.showLoading({
      title: '删除中'
    })
    let that = this
    db.collection('links').doc(id).remove({
      success: function(res) {
        wx.hideLoading()
        wx.showToast({
          title: '删除成功',
        })
        let list = that.data.list.concat()
        list.splice(index,1)
        that.setData({
          list:list
        })
      }
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    // 获取本地存储的userinfo
    var userinfo = wx.getStorageSync('userinfo')
    if(userinfo){
      app.globalData.userInfo = userinfo
      app.globalData.openid = userinfo.openid
      this.setData({
        list:[],
        page:1
      })
      this.get_data()
      this.get_use()
    }
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    wx.showNavigationBarLoading()
    this.setData({
      page:1,
      list:[]
    })
    this.get_data()
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    if(this.data.flag){
      let num = this.data.page+1
      this.setData({
        page:num
      })
      this.get_data()
    }
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})